﻿Imports DataAcessLayer

Partial Public Class WebForm7
    Inherits System.Web.UI.Page

    Dim DAL As New DAL

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        rbEquipaA.Checked = True

        lblActualizadoResult.ForeColor = Drawing.Color.Yellow
        lblActualizadoResult.Text = "-"



        If Not Page.IsPostBack Then
            lnkActualizarRank.Visible = False

            ddlJogos.DataSource = DAL.ObterJogos
            ddlJogos.DataValueField = "IDJogos"
            ddlJogos.DataTextField = "Data"
            ddlJogos.DataTextFormatString = "Data: {0:d}"
            ddlJogos.DataBind()
            ddlJogos.Items.Insert(0, "Escolha uma data")

            ddlJogadores.DataSource = DAL.ObterTodosUsers
            ddlJogadores.DataTextField = "NomeUtilizador"
            ddlJogadores.DataValueField = "IDUser"
            ddlJogadores.DataBind()
            ddlJogadores.Items.Insert(0, "Escolha um Jogador")

        End If

    End Sub

    Protected Sub ddlJogos_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ddlJogos.SelectedIndexChanged

        Message.Visivel = False

        If ddlJogos.SelectedIndex <> 0 Then

            lstA.DataSource = DAL.ObterConstEquipasPorIDEquipaEIDJogo(ddlJogos.SelectedValue, _
                                                                      1)
            lstA.DataTextField = "NomeUtilizador"
            lstA.DataValueField = "IDUser"
            lstA.DataBind()

            lstB.DataSource = DAL.ObterConstEquipasPorIDEquipaEIDJogo(ddlJogos.SelectedValue, _
                                                                     2)
            lstB.DataTextField = "NomeUtilizador"
            lstB.DataValueField = "IDUser"
            lstB.DataBind()

            Dim act = DAL.ObterJogoPorID(ddlJogos.SelectedValue).FirstOrDefault

            If act.Actualizado Then

                lblActualizadoResult.ForeColor = Drawing.Color.Green
                lblActualizadoResult.Text = "Sim!"

                lnkActualizarRank.Visible = False

            Else

                lblActualizadoResult.ForeColor = Drawing.Color.Red
                lblActualizadoResult.Text = "Não!"

                lnkActualizarRank.Visible = True
            End If


        Else

            lstA.Items.Clear()
            lstB.Items.Clear()

        End If
    End Sub

    Protected Sub lnkAdicionarA_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkAdicionarA.Click

        If ddlJogadores.SelectedValue Is Nothing Or ddlJogadores.SelectedValue = Nothing _
        Or ddlJogadores.SelectedIndex = 0 Then
            Message.FeedbackUserMessage("Seleccione um jogador para Inserir!", TipoMensagem.Alerta)

        ElseIf ddlJogos.SelectedIndex = 0 Then
            Message.FeedbackUserMessage("Seleccione uma Data!", TipoMensagem.Alerta)
        Else
            DAL.InserirConstEquipa(ddlJogadores.SelectedValue, 1, ddlJogos.SelectedValue)
            lstA.Items.Add(ddlJogadores.SelectedItem.Text)
        End If

    End Sub

    Protected Sub lnkAdicionarB_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkAdicionarB.Click

        If ddlJogadores.SelectedValue Is Nothing Or ddlJogadores.SelectedValue = Nothing _
        Or ddlJogadores.SelectedIndex = 0 Then
            Message.FeedbackUserMessage("Seleccione um jogador para Inserir!", TipoMensagem.Alerta)

        ElseIf ddlJogos.SelectedIndex = 0 Then
            Message.FeedbackUserMessage("Seleccione uma Data!", TipoMensagem.Alerta)
        Else
            DAL.InserirConstEquipa(ddlJogadores.SelectedValue, 2, ddlJogos.SelectedValue)
            lstB.Items.Add(ddlJogadores.SelectedItem.Text)
        End If

    End Sub

    Protected Sub lnkRemoverA_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkRemoverA.Click

        If lstA.SelectedValue Is Nothing Or lstA.SelectedValue = Nothing Then
            Message.FeedbackUserMessage("Seleccione um jogador para remover!", TipoMensagem.Alerta)
        Else
            DAL.ApagarConstEquipas(lstA.SelectedValue, ddlJogos.SelectedValue)
            lstA.Items.Remove(lstA.SelectedItem)
        End If

    End Sub

    Protected Sub lnkRemoverB_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkRemoverB.Click

        If lstB.SelectedValue Is Nothing Or lstB.SelectedValue = Nothing Then
            Message.FeedbackUserMessage("Seleccione um jogador para remover!", TipoMensagem.Alerta)
        Else
            DAL.ApagarConstEquipas(lstB.SelectedValue, ddlJogos.SelectedValue)
            lstB.Items.Remove(lstB.SelectedItem)
        End If
    End Sub

    Protected Sub lnkActualizar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkOK.Click

        Try
            Dim total = lstA.Items.Count + lstB.Items.Count

            If lstA.Items.Count = 0 Or lstB.Items.Count = 0 Or total < 8 _
            Or txtGolosMarcados.Text = "" Or txtGolosSofridos.Text = "" _
            Then

                Message.FeedbackUserMessage("Não existem jogadores para actualizar!", TipoMensagem.Alerta)

            Else

                If rbEquipaA.Checked And RadioButtonList1.SelectedItem.Text = "Vitoria" Then

                    For Each item As ListItem In lstA.Items

                        DAL.ActualizarRank(item.Value, 3, txtGolosMarcados.Text, txtGolosSofridos.Text, _
                                        1, 0, 0)

                    Next

                    For Each item As ListItem In lstB.Items

                        DAL.ActualizarRank(item.Value, 0, txtGolosMarcados.Text, _
                                           txtGolosSofridos.Text, 0, 0, 1)

                    Next

                ElseIf rbEquipaA.Checked And RadioButtonList1.SelectedItem.Text = "Empate" Then

                    For Each item As ListItem In lstA.Items

                        DAL.ActualizarRank(item.Value, RadioButtonList1.SelectedValue, _
                                           txtGolosMarcados.Text, _
                                           txtGolosSofridos.Text, 0, 1, 0)

                    Next

                    For Each item As ListItem In lstB.Items

                        DAL.ActualizarRank(item.Value, RadioButtonList1.SelectedValue, _
                                           txtGolosMarcados.Text, _
                                           txtGolosSofridos.Text, 0, 1, 0)

                    Next

                ElseIf rbEquipaA.Checked And RadioButtonList1.SelectedItem.Text = "Derrota" Then

                    For Each item As ListItem In lstA.Items

                        DAL.ActualizarRank(item.Value, 0, txtGolosMarcados.Text, _
                                           txtGolosSofridos.Text, 0, 0, 1)

                    Next

                    For Each item As ListItem In lstB.Items

                        DAL.ActualizarRank(item.Value, 3, txtGolosMarcados.Text, _
                                           txtGolosSofridos.Text, 1, 0, 0)

                    Next

                End If

                DAL.AlterarJogoActualizado(ddlJogos.SelectedValue, True)

                Message.FeedbackUserMessage("Actualização aos Jogadores efectuada com Sucesso!", TipoMensagem.Sucesso)

            End If

        Catch ex As Exception

            Message.FeedbackUserMessage("Ocorreu um erro!", TipoMensagem.Erro)
        End Try
    End Sub
  
    Protected Sub lnkActualizarRank_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lnkActualizarRank.Click

        Select Case pnlTeste.Visible

            Case True
                pnlTeste.Visible = False
                txtGolosMarcados.Text = ""
                txtGolosSofridos.Text = ""
            Case False
                pnlTeste.Visible = True

        End Select

    End Sub
End Class